#ifndef _LOADING_SCREEN_H_
#define _LOADING_SCREEN_H_

#include "General Structures.hpp"
#include <string>
using std::string;

//! A loading screen.
/*! Allows you to set the title, the subTitle, the percent loaded, and information about what being loaded. */
class LoadingScreen
{
public:
  //! Ctor.
  /*! \param title The title of the loading screen.
      \param subtitle The text that goes right below the title.
      \param information Text that changes when the percentage of loading changes.  Describes what is currently being loaded. */
	LoadingScreen(string title, string subtitle, string informational);

  //! Changes the progress of the loading screen
  /*! \param progress The new progress.  Takes a percentage.
      \param information Information that is generally used to describe what is being loaded. */
	void SetProgress(double progress, string informational = "__DoNotChange"); // Accepts a double from .0 to 1.0

  //! Renders the loading screen, and swaps the rendering buffer.
	void Render();

private:
	string m_title, //! The title of the loading screen.  Appears closest to the top.
         m_subtitle, //! The subtitle.  Appears right below the title.
         m_informational; //! Information about what is currently being loaded.

	Recti m_barOutline; //! The border for the loading bar.
	Recti m_barPos; //! The position of the loading bar.
};

#endif